#ifndef APPLICATION_H_
#define APPLICATION_H_

#include <GL/glew.h>

#include "SDL/SDL.h"
#include "definitions.h"

#include "gameinterface.h"
#include "entityfactory.h"
#include "statefactory.h"
#include "graphicsfactory.h"
#include "render.h"
#include "log.h"

class CApplication
{
  
private:
  
  CStateFactory * m_pStateFactory;
  CEntityFactory * m_pEntityFactory;
  CGraphicsFactory * m_pGraphicsFactory;
  CGameInterface * m_pGameInterface;
  
  void CreateWindow( const char *, int, int );
  void CreateFactories();
  
  
public:

    void Init();
    void Run();
    
    ~CApplication();

};

#endif
